package ddz;

import java.io.Serializable;
//implements Serializable用于网络传输
public class Pkp implements Serializable {
    private String showvlaue; //显示值
    private int realvalue;//真实值
    private PkpStyle style;//扑克牌类型


    public String getShowvlaue() {
        return showvlaue;
    }

    private void setShowvlaue(String showvlaue) {
        this.showvlaue = showvlaue;
    }

    //使用构造函数保证显示值与拍面值对应



    public Pkp(int realvalue, PkpStyle style) {
        //调用set方法去赋值
        setRealvalue(realvalue);//牌面值定义好之后就可以不用定义显示值了.
        //先判断输入的值是否是大小鬼，然后选择输出方式
        if (realvalue == 16 || realvalue ==17){
            this.style = null;
        }else {
            this.style = style;
        }
    }




    public int getRealvalue() {
        return realvalue;
    }

    private void setRealvalue(int realvalue) {

        if (realvalue < 3 || realvalue >17){
            System.out.println("赋值出现错误，退出程序.");
            System.exit(0);
        }

        this.realvalue = realvalue;


        switch (realvalue){
            case 11 :{
                this.showvlaue = "j";
                break;
            }

            case 12 :{
                this.showvlaue = "q";
                break;
            }
            case 13 :{
                this.showvlaue = "k";
                break;
            }
            case 14 :{
                this.showvlaue = "a";
                break;
            }
            case 15 :{
                this.showvlaue = "2";
                break;
            }
            case 16 :{
                this.showvlaue = "小鬼";
                break;
            }
            case 17 :{
                this.showvlaue = "大鬼";
                break;
            }
            default:{
                this.showvlaue = realvalue + "";//传其它的值，传什么就对应是什么
            }

        }
    }



    public PkpStyle getStyle() {
        return style;
    }

    public void setStyle(PkpStyle style) {
        this.style = style;
    }

   @Override
    public String toString() {
        return (style == null ? "" : style) + "" + this.showvlaue; //用来显示牌 先判断是否是大小鬼来决定输出方式
    }
}
